package com.ltx.bugseeker.service;

import com.ltx.bugseeker.dto.SendSmsDTO;

/**
 * 短信服务接口
 * 提供短信验证码发送、验证等功能
 * 
 * @author ltx
 * @since 2025-01-26 16:30:00
 */
public interface ISmsService {
    
    /**
     * 发送短信验证码
     * 
     * @param sendSmsDTO 发送短信请求参数
     * @return 是否发送成功
     * @throws Exception 发送失败时抛出异常
     */
    boolean sendSmsCode(SendSmsDTO sendSmsDTO) throws Exception;
    
    /**
     * 验证短信验证码
     * 
     * @param phone 手机号码
     * @param smsCode 验证码
     * @param type 验证码类型
     * @return 验证是否成功
     * @throws Exception 验证失败时抛出异常
     */
    boolean verifySmsCode(String phone, String smsCode, String type) throws Exception;
    
    /**
     * 检查发送频率限制
     * 
     * @param phone 手机号码
     * @return 是否可以发送（true: 可以发送, false: 频率限制中）
     */
    boolean checkSendFrequency(String phone);
    
    /**
     * 检查验证码尝试次数
     * 
     * @param phone 手机号码
     * @return 是否可以继续尝试（true: 可以尝试, false: 已达到最大尝试次数）
     */
    boolean checkVerifyAttempts(String phone);
}